package com.dingding.common.core.push.factory.request;

import com.dingding.common.core.model.dto.PushModelBean;
import com.dingding.common.core.push.base.ClientAppType;
import com.dingding.common.core.push.base.PushRequest;

public interface IPushRequestFactory {
	
	/**
	 * @Description:创建推送请求消息的String形式
	 * @param modular 推送的模块id
	 * @param UserId 用户id
	 * @author fengshuonan
	 * @since 2.4
	 */
	public String createPushRequestString(String modular,String UserId,Object... objects);
	
	/**
	 * @Description:创建推送的通知（用户客户端显示最新消息）
	 * @param modular 模块名称
	 * @param userId 用户id
	 * @param pushModel 推送消息封装
	 * @author fengshuonan
	 * @since 2.4
	 */
	public String createNoticeRequest(String modular,String userId,PushModelBean pushModel);
	
	/**
	 * @Description:获取极光推送的id
	 * @author fengshuonan
	 * @since 2.4
	 */
	public String getAliasId(String userId);
	
	/**
	 * @Description:获取客户端类型
	 * @author fengshuonan
	 * @since 2.4
	 */
	public ClientAppType getClientType(String userId);
	
	/**
	 * @Description:根据用户的id获取推送的PushRequest
	 * @param userId
	 * @author fengshuonan
	 * @return PushRequest
	 * @since 2.4
	 */
	public PushRequest getPushRequest(String userId);
}
